var express = require('express');
var router = express.Router();
const {userModel,goodsModel} = require('../model/Model');
const { jiami } = require('../untils/crypto');
const { sign } = require('jsonwebtoken');
const { expressjwt } = require('express-jwt');
const upload = require('../public/js/uploadStorage');


/* 普通用户 */
+function users(){
// 用户注册
router.post('/reg', function (req, res, next) {
  console.log("接收到post数据")
  //1.获取
  const { username, password } = req.body;
  //2.验证用户名密码
  if (!(username.length > 0 && password.length > 0)) {
    res.json({
      flag: false,
      msg: '用户名或密码错误'
    })
    return
  }

  //3.验证是否重复
  userModel.findOne({
    username: username
  }, function (err, result) {
    if (err) {
      res.json({
        flag: false,
        msg: '错误1'
      })

    } else {
      if (result) {
        res.json({
          flag: false,
          msg: '已被注册'
        })
      } else {
        // 加密
        userModel.create({ username, 'password': jiami(password) }, function (err1, result1) {
          if (err1) {
            res.json({
              flag: false,
              msg: '错误2'
            })
          } else {
            res.json({
              flag: true,
              msg: '注册成功'
            })
          }
        }
        )
      }
    }
  })

});

// 用户登录
router.post('/login', function (req, res) {
  let { username, password } = req.body;
  password = jiami(password);
  userModel.findOne({ username, password }, function (err, result) {
    if (err) {
      res.json({
        flag: false,
        msg: '服务器错误'
      })
    } else {
      // 登陆成功
      if (result) {
        res.json({
          flag: true,
          msg: '登陆成功',
          token: sign({
            username,
            id: result._id,
          }, 'miyao', {
            expiresIn: 60 * 60 * 3
          })
        })
      } else {
        // 登陆失败
        res.json({
          flag: false,
          msg: '用户名或密码错误'
        })
      }
    }
  })
});

// 路由验证
router.get('/index', expressjwt({ secret: 'miyao', algorithms: ['HS256'] }), function (req, res, next) {
  res.json({
    username: req.auth.username
  })
  next();
})

// 查
// router.get('/getUsers', async function (req, res) {
//   let { pageCurrent, pageSize } = req.query;
//   //获取document总数
//   let documentTotal = await userModel.count();
//   if (documentTotal) {
//       userModel.find()
//           //掠过的document数量
//           .skip((pageCurrent - 1) * pageSize)
//           //每页显示的document数量
//           .limit(pageSize)
//           .then(list => {
//               res.json({
//                   flag: true,
//                   data: list,
//                   pageTotal: Math.ceil(documentTotal / pageSize)
//               })
//           })
//   } else {
//       res.json({
//           flag: false,
//           msg: '数据库没有找到数据'
//       })
//   }
// })
/* 管理员列表 */
router.get('/getUsers', async function (req, res) {
  const list = await userModel.find();
  res.json({
    flag: true,
    data: list
  })
})

// 删
router.get('/deleteUsers', async function (req, res) {
    const user = await userModel.findOneAndDelete({ _id: req.query.id});
    console.log(req.query.id)
    if (user) {
      res.json({
        flag: true,
        msg: '删除成功'
      })
    } else {
      res.json({
        flag: false,
        msg: '不能删除'
      })
    }
  }
)
}();


/* 商品管理 */
-function goods(){
// 查
// router.get('/getGoods', async function (req, res) {
//   let { pageCurrent, pageSize } = req.query;
//   //获取document总数
//   let documentTotal = await goodsModel.count();
//   if (documentTotal) {
//       goodsModel.find()
//           //掠过的document数量
//           .skip((pageCurrent - 1) * pageSize)
//           //每页显示的document数量
//           .limit(pageSize)
//           .then(list => {
//               res.json({
//                   flag: true,
//                   data: list,
//                   pageTotal: Math.ceil(documentTotal / pageSize)
//               })
//           })
//   } else {
//       res.json({
//           flag: false,
//           msg: '数据库没有找到数据'
//       })
//   }
// })

router.get('/getGoods', async function (req, res) {
  const list = await goodsModel.find();
  res.json({
    flag: true,
    data: list
  })
})


// 删
router.get('/deleteGoods', async function (req, res) {
    const user = await goodsModel.findOneAndDelete({ _id: req.query.id, uid: { $ne: 'admin' } });
    console.log(user);
    if (user) {
      res.json({
        flag: true,
        msg: '删除成功'
      })
    } else {
      res.json({
        flag: false,
        msg: '不能删除'
      })
    }
  })

  // 增
  router.post('/addgoods', upload.single('file'), function (req, res) {
    // console.log(req.file.path);
    // console.log(req.body);
    let { name , price , describe ,fineness ,classify }= req.body;
    let { path } = req.file;
    goodsModel.create({name , price , describe , img : path ,fineness ,classify}).then(
      function () {
        res.json({
          flag: true,
        })
      }
    );
 }
)


// 分类寻找
router.get('/classify', function (req, res) {
  goodsModel.find({ classify:'家居'}, function (err, doc) { 
      if (err){ 
          console.log(err); 
      } 
      else{ 
          res.json({
              flag: true,
              data: doc
            })  ; 
      } 
  }); 
})

}();



module.exports = router;